<template>
  <list-comp ref="rp" :configa="config"></list-comp>
</template>

<script>
import axios from 'axios'
import listComp from '../components/listComp.vue'
export default {
  name:"list",
  components: { listComp },
  async created(){    
    var pageid=this.$route.meta.dynamicPageId //todo 这里有问题，如果是/list/add 刷新，在add，取到的是add的id，不是list的id
    /**
     * 从路由meta中获取动态页面id，并从库中取得页面配置
     * todo 需要把host port 等信息做成外部配置
     */    
    var url=`http://localhost:8811/api/DynamicPage/GetOne/${pageid}`
    var rep=await axios.get(url)    
    this.config=JSON.parse(rep.data.result.pageConfig)    
  },
  beforeRouteLeave(to, from,next) {    
    //如果type是 null 可能是手写的静态路由忘记写type了
    if(from.meta.type==to.meta.type && from.meta.type!="" && from.meta.type!=null && from.meta.type!=undefined){      
      next({path:"/redirect?p="+to.path})
    }
    else{
      next()
    }
  },
  data(){
    return {
      config:{
        api:{},
        pager:{},
        buttons:{
          items:[]
        },
        searchs:{
          apiField:"",
          items:[]
        },
        table:{
          columns:[]
        }
      }      
    }
  }

}
</script>

<style>

</style>